package com.houtai.dao;

import com.houtai.bean.TdJob;
import com.houtai.bean.dto.job.JobListDto;
import com.houtai.bean.vo.job.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface TdJobDao {

    /**
     * @Purpose:    添加岗位
     * @param:      tdJob
     * @Version:    1.0
     * @Author:     li
     * @time:       2019/8/21
     * @return:     void
     */
    void insertTdJob(TdJob tdJob);

    /**
     * @Purpose   查找岗位
     * @param     job_id
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    TdJob
     */
    TdJob findTdJob(@Param("job_id") int job_id);

    /**
     * @Purpose:    更新岗位
     * @param:      tdJob
     * @Version:    1.0
     * @Author:     li
     * @time:       2019/8/21
     * @return:     void
     */
    void updateTdJob(TdJob tdJob);

    /**
     * @Purpose:    更新岗位状态
     * @param:      tdJob
     * @Version:    1.0
     * @Author:     li
     * @time:       2019/8/21
     * @return:     void
     */
    void updateTdJobState(TdJob tdJob);

    /**
     * @Purpose   查找岗位
     * @param     job_id
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    TdJobDetail
     */
    TdJobDetail findTdJobDetail(@Param("job_id") int job_id);

    /**
     * @Purpose   查找我的岗位列表
     * @param     company_id
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    List<TdJobList>
     */
    List<TdJobList> findTdJobList(@Param("company_id") int company_id);
    /**
     * @Purpose   搜索岗位列表
     * @param     dto
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    List<JobList>
     */
    List<JobList> findJobList(JobListDto dto);
    /**
     * @Purpose   查找岗位
     * @param     job_id
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    JobDetail
     */
    JobDetail findJobDetail(@Param("job_id") int job_id);
    /**
     * @Purpose   公司其他岗位列表
     * @param
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    List<CompanyJobList>
     */
    List<CompanyJobList> findCompanyJobList(@Param("company_id") int company_id);
    /**
     * @Purpose   推荐岗位列表
     * @param
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    List<RecommendedJobList>
     */
    List<RecommendedJobList> findRecommendedJobList(@Param("company_id") int company_id,
                                                    @Param("job_keywords") String job_keywords);
    /**
     * @Purpose   热门岗位列表
     * @param
     * @version   1.0
     * @author    李准
     * @time      2017-08-19
     * @return    List<HotJobList>
     */
    List<HotJobList> findHotJobList();
    /**
     * @Purpose:    更新岗位申请次数
     * @param:      tdJob
     * @Version:    1.0
     * @Author:     li
     * @time:       2019/8/21
     * @return:     void
     */
    void updateTdJobApplySize(@Param("job_id") int job_id);
}
